#include <functional>
#include <memory>
#include <thread>
#include "rclcpp/rclcpp.hpp"
#include "node/action_client.hpp"
#include "node/task_client.hpp"
#include "node/action_client_guard_condition.hpp"

int main(int argc, char **argv)
{
  rclcpp::init(argc, argv);

  // auto action_client = std::make_shared<TaskActionClient>();

  // auto action_client = std::make_shared<FibonacciActionClient>("123");

  auto action_client = std::make_shared<FibonacciActionClientGuardCondition>("123");

  rclcpp::executors::MultiThreadedExecutor exe;
  exe.add_node(action_client);
  exe.spin();

  rclcpp::shutdown();
  return 0;
}